﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CoreRp.Services.Rap
{
    public static class S_Role
    {
        public static List<Db_Models.RAP_ROLE> Roles { get;private set; }
        static S_Role()
        {
            Roles = new List<Db_Models.RAP_ROLE>()
            {

                new Db_Models.RAP_ROLE()
                {
                    ENABLE="Y",
                    ROLECODE=E_Roles.SUPERADMIN.ToString(),
                    ROLEDESC="管理所有功能，开发人员专属",
                    ROLENAME="超级管理员"
                },
                new Db_Models.RAP_ROLE()
                {
                    ENABLE="Y",
                    ROLECODE=E_Roles.ADMIN.ToString(),
                    ROLENAME="管理员",
                    ROLEDESC="管理员，拥有企业所拥有的所有功能"
                },
                new Db_Models.RAP_ROLE()
                {
                    ENABLE="Y",
                    ROLECODE=E_Roles.USER.ToString(),
                    ROLENAME="用户",
                    ROLEDESC="普通用户"
                }
            };
        }
        public static string SyncRoles(IFreeSql Db)
        {
            StringBuilder sb = new StringBuilder();
            Db.Transaction(() =>
            {
                foreach(var r in Roles)
                {
                    if (Db.Select<Db_Models.RAP_ROLE>().Where(x => x.ROLECODE == r.ROLECODE).Count() == 0)
                    {
                        Db.Insert<Db_Models.RAP_ROLE>(r).ExecuteAffrows();
                        sb.AppendLine(r.ROLECODE + ":新增成功。");
                    }
                    else
                    {
                        sb.AppendLine(r.ROLECODE + ":已存在，不做任何修改。");
                    }
                }
            });
            return sb.ToString();
        }
    }
}
